[root@ns1 ~]# nmcli d

DEVICE       TYPE      STATE      CONNECTION

eno16777736  ethernet  connected  eno16777736

lo           loopback  unmanaged  --


IP、网关、dns等设置

# set IPv4 address ⇒ nmcli *** [IP address]

 [root@ns1 ~]# nmcli c modify eno16777736 ipv4.addresses 10.0.0.5/24 // eno16777736 是指CONNECTION或NAME名,以下类同


# set default gateway

 [root@ns1 ~]# nmcli c modify eno16777736 ipv4.gateway 10.0.0.1


# set DNS

 [root@ns1 ~]# nmcli c modify eno16777736 ipv4.dns 10.0.0.1


#set DNS2

[root@ns1 ~]# nmcli c modify eno16777736 +ipv4.dns 10.0.0.2


# set manual for static setting (it's "auto" for DHCP)

 [root@ns1 ~]# nmcli c modify eno16777736 ipv4.method manual


# restart the interface and reload the settings

 [root@ns1 ~]# nmcli c down eno16777736; nmcli c up eno16777736

 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1)


# show settings

[root@web ~]# nmcli c

NAME                UUID                                  TYPE            DEVICE                                                                                       

Wired connection 1  96f3dea9-8913-3e6c-a0a3-734c4990e4c9  802-3-ethernet  ens38                                                                                        

ens33               6d471652-e72c-45a4-8a8e-523ae3ab5968  802-3-ethernet  ens33                                                                                         

ens37               1d0ecef1-2d45-4e41-bcf5-864b4ea4032d  802-3-ethernet  ens37 


[root@web ~]# nmcli d

DEVICE  TYPE      STATE      CONNECTION

ens33   ethernet  connected  ens33

ens37   ethernet  connected  ens37

ens38   ethernet  connected  Wired connection 1

lo      loopback  unmanaged  --


1、先罗列几个nmcli日常用法

nmcli dev status //查看系统现有网络设备的连接状态

nmcli conn show //查看已有连接

nmcli conn delete UUID1 UUID2 UUID3 //删除不需要的连接

nmcli conn delete 'Wired connection 1' //删除不需要的连接;Wired connection 1是指网络名(NAME或CONNECTION);在putty端上'Wired connection 1'是单引号;在本机终端上”Wired connection 1”是双引号

nmcli dev connect ens38 //连接设备ens38,该操作类似于接上网卡网线;ens38是指设备名(DEVICE)

// 如果网络名是Wired connection 1时,可以通过 nmcli conn delete 'Wired connection 1',再通过 nmcli dev connect ens38,可得到ens38网络名

nmcli dev disconnect ens38 //断开设备ens38,类似于拔掉网线;ens38是指设备名(DEVICE)

nmcli c down 'Wired connection 1' //关闭连接Wired connection 1,等同于ifdown 'Wired connection 1';Wired connection 1是指网络名(NAME或CONNECTION)

nmcli conn up 'Wired connection 1' //打开连接Wired connection 1,等同于ifup 'Wired connection 1';Wired connection 1是指网络名(NAME或CONNECTION)

nmcli dev show //查看设备详细信息

nmcli con reload //重新加载配置文件


2、创建、命名连接,并做基本配置

nmcli conn add type ethernet con-name ens160 ifname ens160 //创建新连接con-name是ens160,也可以根据个人习惯改为eth0.连接到的设备是ens160,根据实际情况改成自己使用的网卡

nmcli conn mod ens160 ipv4.addresses "10.x.x.x/24" //配置IP和掩码

nmcli conn mod ens160 ipv4.gateway "10.x.x.254" //配置网关

nmcli conn mod ens160 ipv4.dns "x.x.x.x" //配置dns

nmcli conn mod ens160 ipv4.method manual //配置IP地址获取方式为手动

nmcli conn mod ens160 connection.autoconnect yes //配置开机自动启动

nmcli conn up ens160 //启动网卡,命令等同于ifup ens160


3、配置网卡bond

    网卡bond是创建一个虚拟链接做为主,若干个连接做为从。从连接关联各自的物理网卡,避免物理网卡的单点故障,提高可用性。

//这里系统有两个网卡enp9s0f0和enp9s0f1

nmcli conn add type bond con-name bond0 ifname bond0 mode active-backup autoconnect yes

//添加一个连接,类型为bond,连接名bond0,设置连接自动启动.设备指向bond0,将创建出一个虚拟设备bond0

nmcli conn add type bond-slave con-name eth0 ifname enp9s0f0 master bond0 autoconnect yes

nmcli conn add type bond-slave con-name eth1 ifname enp9s0f1 master bond0 autoconnect yes

//为bond0添加两个从连接eth0和eth1,分别关联物理网卡enp9s0f1和enp9s0f1,设置连接自动启动.也可以不指定从连接名,会自动命名bond-slave-enp9s0f0和bond-slave-enp9s0f1

nmcli conn modify bond0 ipv4.addresses "10.x.x.x/24"

nmcli conn modify bond0 ipv4.gateway "10.x.x.254"

nmcli conn modify bond0 ipv4.dns "x.x.x.x"

nmcli conn modify bond0 ipv4.method manual

//为连接bond0配置IP、网关、dns、启动方式

nmcli connection up eth0

nmcli connection up eth1

nmcli connection up bond0 //启动两个从连接,然后启动主连接。启动eth0和eth1时会自动disconnect网卡上原有的连接,建议在终端上操作。


nmcli命令

地址配置工具: nmcli
推荐在CentOS7上使用,6上不建议
注意:NeworkManager是管理和监控网络设置的守护进程,运行此命令需要NetworkManager服务开启
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device – show and manage network interfaces
nmcli device help
connection – start, stop, and manage network connections
nmcli connection help
修改IP地址等属性:
#nmcli connection modify IFACE [+|-]setting.property value
setting.property:
ipv4.addresses ipv4.gateway ipv4.dns1 ipv4.method manual | auto
修改配置文件执行生效:
systemctl restart network重启服务

nmcli con reload重新加载配置文件

nmcli命令生效: nmcli con down eth0 ;nmcli con up eth0
示例:

connection可以简写 con 或 c
注意:图中的名称对应于/etc/sysconfig/network-scripts/ifcfg-###网卡文件中的“NAME=”这一项,修改此项就可以修改名称

设备即网络接口,连接是对网络接口的配置。一个网络接口
可有多个连接配置,但同时只有一个连接配置生效。
显示所有包括不活动连接

[root@localhost ~]# nmcli connection show  
    
名称 UUID  类型 设备    eth0 ab4ee136-d703-4d37-9339-085beec3e181  802-3-ethernet  eth0    eth1 50f31347-a405-47c5-b4d3-c52e79ecdcf1  802-3-ethernet  --  eth0 e44ae173-22c3-479b-a2be-16df771e9ce7  802-3-ethernet  --  eth1 df090843-cd20-470b-8126-dbbc9a89fe16  802-3-ethernet  eth1    virbr0  8a92c72b-3520-4a69-bc3d-2b467a17558e  bridge  virbr0

显示所有活动连接

[root@localhost ~]# nmcli connection show --active   
    
名称 UUID  类型 设备    eth0 ab4ee136-d703-4d37-9339-085beec3e181  802-3-ethernet  eth0    eth1 df090843-cd20-470b-8126-dbbc9a89fe16  802-3-ethernet  eth1    virbr0  8a92c72b-3520-4a69-bc3d-2b467a17558e  bridge  virbr0

显示网络连接配置
nmcli connection show "网卡名称" 显示当前对应网卡的详细信息

[root@localhost ~]# nmcli connection show "eth1"  
    connection.id:  eth1  
    connection.uuid:50f31347-a405-47c5-b4d3-c52e79ecdcf1  
    connection.interface-name:  eth1  
    connection.type:802-3-ethernet  
    ...  
    GENERAL.MASTER-PATH:--  
    IP4.地址[1]:10.1.253.94/16  
    IP4.地址[2]:10.1.249.44/16  
    IP4.网关:   10.1.0.1  
    IP4.路由器[1]:  dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1003  
    IP4.DNS[1]: 10.1.0.1  
    IP4.域[1]:  magedu.com  
    DHCP4.选项[1]:  requested_ms_classless_static_routes = 1  
    ...  
    DHCP4.选项[30]: dhcp_server_identifier = 10.1.0.1  
    IP6.地址[1]:fe80::20c:29ff:fe43:6497/64  
    IP6.网关:

显示设备状态
nmcli dev status

[root@localhost ~]# nmcli dev status  
    设备类型  状态CONNECTION   
    virbr0  bridge连接的  virbr0   
    eth0ethernet  连接的  eth0     
    eth1ethernet  连接的  eth1     
    lo  loopback  未管理  --   
    virbr0-nic  tap   未管理  --

显示网络接口属性
nmcli dev show eth1

[root@localhost ~]# nmcli dev show eth1  
    GENERAL.设备:   eth1  
    GENERAL.类型:   ethernet  
    GENERAL.硬盘:   00:0C:29:43:64:97  GENERAL.MTU:1500  
    GENERAL.状态:   100 (连接的)  
    GENERAL.CONNECTION: eth1  
    GENERAL.CON-PATH:   /org/freedesktop/NetworkManager/ActiveConnection/2  
    WIRED-PROPERTIES.容器:  开  
    IP4.地址[1]:10.1.253.94/16  
    IP4.地址[2]:10.1.249.44/16  
    IP4.网关:   10.1.0.1  
    IP4.路由器[1]:  dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1003  
    IP4.DNS[1]: 10.1.0.1  
    IP4.域[1]:  magedu.com  
    IP6.地址[1]:fe80::20c:29ff:fe43:6497/64  
    IP6.网关:

创建新连接default, IP自动通过dhcp获取
nmcli con add con-name default type Ethernet ifname eth0
示例:

[root@localhost ~]# nmcli connection add con-name home type ethernet ifname eth1 autoconnect no    
[root@localhost ~]# nmcli connection add con-name office type ethernet ifname eth1 autoconnect no

创建新连接static ,指定静态IP,不自动连接
nmcti con add con-name static ifname eth0 autoconnect no type Ethernet ip4 172.25.X.10/24 gw4 172.25.X.254
示例:

[root@localhost ~]# nmcli connection add con-name home type ethernet ifname eth1 autoconnect yes ip4 10.1.100.100/24 gw4 10.1.0.254    
[root@localhost ~]# nmcli connection add con-name office type ethernet ifname eth1 autoconnect yes ip4 10.1.100.200/24 gw4 10.1.0.254

注意:以上命令执行过程中会自动生成/etc/sysconfig/network-scripts/ifcfg-,并且相关内容已经添加进文件内部,无论其dhcp还是固定的


但是要想启用或切换对应配置需要运行如下命令:
nmcli connection up home

[root@localhost ~]# nmcli connection up home  
#或切换office配置 [root@localhost ~]# nmcli connection up office

删除对应网卡配置连接
nmcli con del default
示例:

[root@localhost ~]# nmcli connection delete home

注意:此删除操作会删除对应网卡的配置文件

查看帮助
nmcli con add help
修改连接设置
nmcli con mod “static” connection.autoconnect no
nmcli con mod “static” ipv4.dns 172.25.X.254
nmcli con mod “static” +ipv4.dns 8.8.8.8
nmcli con mod “static” -ipv4.dns 8.8.8.8
nmcli con mod “static” ipv4.addresses “172.25.X.10/24 172.25.X.254”
nmcli con mod “static” +ipv4.addresses 10.10.10.10/16

修改连接配置后,需要重新加载配置
nmcli con reload
nmcli con down “system eth0” 可被自动激活
nmcli con up “system eth0”
nmcli dev dis eth0 禁用网卡,访止被自动激活

图形工具
nm-connection-editor

网络组Network Teaming

网络组:是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量
网络组不同于旧版中bonding技术,提供更好的性能和扩展性
网络组由内核驱动和teamd守护进程实现.
多种方式runner
broadcast(广播)
roundrobin(轮流)
activebackup(活动备份)
loadbalance(负载均衡)
lacp (implements the 802.3ad Link Aggregation Control Protocol)链路聚合控制协议:需要汇聚层交换机支持

网络组
启动网络组接口不会自动启动网络组中的port接口
启动网络组接口中的port接口不会自动启动网络组接口
禁用网络组接口会自动禁用网络组中的port接口
没有port接口的网络组接口可以启动静态IP连接
启用DHCP连接时,没有port接口的网络组会等待port接口的加入

创建网络组接口
nmcli con add type team con-name CNAME ifname INAME [config JSON]
CNAME 连接名, INAME 接口名
JSON 指定runner方式
格式: '{"runner": {"name": "METHOD"}}'
METHOD 可以是broadcast, roundrobin,
activebackup, loadbalance, lacp

示例:

[root@localhost ~]# nmcli connection add con-name team0 type team ifname team0 config '{"runner"{"name":"activebackup"}}'

创建port接口
nmcli con add type team-slave con-name CNAME
ifname INAME master TEAM
CNAME 连接名
INAME 网络接口名
TEAM 网络组接口名
连接名若不指定,默认为team-slave-IFACE
示例:

[root@localhost ~]# nmcli connection add con-name team0 -eth1 type team-slave ifname eth1 master team0 

[root@localhost ~]# nmcli connection add con-name team0 -eth2 type team-slave ifname eth2 master team0

然后配置team0网络组的ip地址
设置IP
# nmcli con mod team0 ipv4.addresses 192.168.1.100/24
设置固定IP模式
# nmcli con mod team0 ipv4.method manua

INAME 设备名 CNAME 网络组接口名或port接口

对应生成以下文件
管理网络组配置文件
# /etc/sysconfig/network-scripts/ifcfg-team0
DEVICE=team0
DEVICETYPE=Team
TEAM_CONFIG="{\"runner\": {\"name\": \"broadcast\"}}"
BOOTPROTO=none
IPADDR0=172.25.5.100
PREFIX0=24
NAME=team0
网络组成员文件(一个或多个)
# /etc/sysconfig/network-scripts/ifcfg-team0-eth1
DEVICE=eth1
DEVICETYPE=TeamPort
TEAM_MASTER=team0
NAME=team0-eth1
ONBOOT=yes
ONBOOT=yes

启用网络组
# nmcli con up team0
# nmcli con up team0-eth1
# nmcli con up team0-eth2
查看网络组状态
#teamdctl team0 state